package com.ctshk.rpc.ship.req;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 船票产品信息req
 * </p>
 *
 * @author 刘蕾
 * @since 2021年03月05日
 */
@Data
@ApiModel(value="ShipProductReq对象", description="船票产品信息req")
public class ShipProductReq implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;

    @ApiModelProperty(value = "产品id集合")
    private List<String> productIds;

    @ApiModelProperty(value = "编码")
    private String code;

    @ApiModelProperty(value = "产品来源 1 手工产品，2 API产品）")
    private Integer productSource;

    @ApiModelProperty(value = "审批状态（1 待提交，2 待审批，3 审批中，4 审批不通过，5 审批通过）")
    private Integer approvalStatus;

    @ApiModelProperty(value = "售卖状态（0 无效，1 有效）当审批状态为通过时才会有售卖状态1")
    private Integer sellStatus;

    @ApiModelProperty(value = "船公司类型(1 信德船票，2 珠江船票)")
    private Long companyType;

    @ApiModelProperty(value = "出发城市id")
    private Long depCityId;

    @ApiModelProperty(value = "出发城市名称")
    private String depCityName;

    @ApiModelProperty(value = "到达城市id")
    private Long arrCityId;

    @ApiModelProperty(value = "到达城市名称")
    private String arrCityName;

    @ApiModelProperty(value = "航线id")
    private Long routeId;

    @ApiModelProperty(value = "航线名称")
    private String routeName;

    @ApiModelProperty(value = "船种id集合")
    private List<ShipTypeProductList> shipTypeProductList;

    @ApiModelProperty(value = "船舱等级(1 普通舱，2 高级舱，3 豪华舱)")
    private Long cabinClass;

    @ApiModelProperty(value = "船舱等级(1 普通舱，2 高级舱，3 豪华舱)")
    private String cabinClassName;

    @ApiModelProperty(value = "可售座位号(珠江船票)，多个逗号分隔")
    private String availableSeat;

    @ApiModelProperty(value = "库存(珠江船票)")
    private Integer stock;

    @ApiModelProperty(value = "供应商id(信德船票)")
    private Long supplierId;

    @ApiModelProperty(value = "供应商名称(信德船票)")
    private String supplierName;

    @ApiModelProperty(value = "负责人id")
    private Long chargeUserId;

    @ApiModelProperty(value = "负责人名称")
    private String chargeUserName;

    @ApiModelProperty(value = "适用人群id")
    private Long applicableCrowdId;

    @ApiModelProperty(value = "适用人群名称")
    private String applicableCrowdName;

    @ApiModelProperty(value = "打包状态（1：允许打包 2：不允许打包 3：只限打包）")
    private Integer packStatus;

    @ApiModelProperty(value = "创建人")
    private Long createId;

    @ApiModelProperty(value = "修改人")
    private Long modifiedId;

    @ApiModelProperty(value = "删除标识")
    private Integer isDeleted;

    @ApiModelProperty(value = "船票产品成本集合")
    private List<ShipProductCostReq> shipProductCostReqList;

    @ApiModelProperty(value = "船票产品预订设置")
    private ShipProductReservationSettingsReq shipProductReservationSettings;

    @Max(value = 2,message = "是否推荐值域，1:推荐,2:取消推荐")
    @Min(value = 1,message = "是否推荐值域，1:推荐,2:取消推荐")
    @ApiModelProperty(value = "是否推荐")
    private Integer isRecommend;
}
